
package com.bstek.urule.runtime.rete;

import com.bstek.urule.debug.MessageItem;
import com.bstek.urule.debug.MsgType;
import com.bstek.urule.runtime.WorkingMemory;
import com.bstek.urule.runtime.assertor.AssertorEvaluator;
import org.springframework.context.ApplicationContext;

import java.util.List;

/**
 * @author Jacky.gao
 * @since 2015年1月8日
 */
public interface Context {
    AssertorEvaluator getAssertorEvaluator();

    ValueCompute getValueCompute();

    ApplicationContext getApplicationContext();

    String getVariableCategoryClass(String variableCategory);

    WorkingMemory getWorkingMemory();

    Object parseExpression(String expression);

    List<MessageItem> getDebugMessageItems();

    void debugMsg(String msg, MsgType type, boolean debug);
}
